package com.pe.pgn.clubpgn.service.impl;

import java.sql.SQLException;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.pe.pgn.clubpgn.dao.TransferenciaDao;
import com.pe.pgn.clubpgn.domain.beans.BNAlmacen;
import com.pe.pgn.clubpgn.domain.beans.BNArticulo;
import com.pe.pgn.clubpgn.domain.beans.BNDocumentoMovArticulo;
import com.pe.pgn.clubpgn.service.TransferenciaService;

@SuppressWarnings("unchecked")
@Service("transferenciaService")
public class TransferenciaServiceImpl implements TransferenciaService{

	@Autowired
	private TransferenciaDao transferenciaDao;

	public List<BNDocumentoMovArticulo> obtenerListaTransferencias() {
		return this.transferenciaDao.obtenerListaTransferencias();
	}

	public List<BNAlmacen> obtenerTodosAlmacenes() {
		return this.transferenciaDao.obtenerTodosAlmacenes();
	}

	public List<BNDocumentoMovArticulo> busquedaListaTransferencias( 
	String finDocumento, String inicioDocumento, String deDocumento) {
		
		return this.transferenciaDao.busquedaListaTransferencias
		(finDocumento, inicioDocumento, deDocumento);
	}

	public BNDocumentoMovArticulo obtenerDocumentoTransferencia(Long id) {
		return this.transferenciaDao.obtenerDocumentoTransferencia(id);
	}

	public List<BNArticulo> obtenerListaArticulosWizard(String coAlmacenOrigen, String coAlmacenDestino, 
		String coCatalogoOrigen, String coCatalogoDestino) {
		
		return this.transferenciaDao.obtenerListaArticulosWizard
		(coAlmacenOrigen,coAlmacenDestino,coCatalogoOrigen,coCatalogoDestino);
	}

	public List<BNArticulo> buscarListaArticulosWizard(String coCategoria,
			String deArticulo, String coCodigoArticulo, String stManejaStock,
			String stManejaSerie, String coAlmacenOrigen,
			String coAlmacenDestino, String coCatalogoOrigen,
			String coCatalogoDestino) {
		
		return this.transferenciaDao.buscarListaArticulosWizard(coCategoria,
		deArticulo, coCodigoArticulo, stManejaStock, stManejaSerie,
		coAlmacenOrigen, coAlmacenDestino, coCatalogoOrigen, coCatalogoDestino);
	}

	public Map guardarDocumentoTransferencia(
			BNDocumentoMovArticulo bntransf) throws SQLException{
		return this.transferenciaDao.
		guardarDocumentoTransferencia(bntransf);
	}

	public BNArticulo obtenerDatosArticuloPorCodigo(
		String coCodigoArticulo,String coAlmacenOrigen,String coCatalogoOrigen) {
		
		return this.transferenciaDao.obtenerDatosArticuloPorCodigo(
		coCodigoArticulo, coAlmacenOrigen, coCatalogoOrigen);
	}

	public BNAlmacen obtenerDatosAlmacenPorCodigo(String coAlmacen) {
		return this.transferenciaDao.obtenerDatosAlmacenPorCodigo(coAlmacen);
	}

	public List<BNArticulo> obtenerPremiosPorArticulo(String coAlmacenOrigen,
			String coCatalogoOrigen, String coCatalogoDestino,
			String coCodigoArticulo) {
		return this.transferenciaDao.obtenerPremiosPorArticulo(coAlmacenOrigen,
		coCatalogoOrigen, coCatalogoDestino, coCodigoArticulo);
	}

	public List<BNArticulo> obtenerPremiosPorArticuloNoInstantVale(
			String coAlmacenOrigen, String coCatalogoOrigen, String coCatalogoDestino, String coCodigoArticulo) {
		return this.transferenciaDao.obtenerPremiosPorArticuloNoInstantVale(coAlmacenOrigen,
		coCatalogoOrigen, coCatalogoDestino, coCodigoArticulo);
	}	
}
